首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏浪浪山下那个村

    Flink SQL 优化

    要么设置 TTL ,要么使用 Flink SQL 的 interval join 。 Flink SQL可以指定空闲状态(即未更新的状态)被保留的最小时间 当状态中某个 key对应的 状态未更新的时间达到阈值时, 该条状态被自动清理。 SQL 中使用 Split Distinct 优化方法。 (3)该功能在Flink 1.9.0 版本 及以上版本才支持。 SQL 优化器可以识别同一唯一键上的不同 FILTER 参数。

    96810编辑于 2023-03-08
  • 来自专栏麒思妙想

    Flink SQL vs Spark SQL

    Spark SQL 的核心是Catalyst优化器,首先将SQL处理成未优化过的逻辑计划(Unresolved Logical Plan),其只包括数据结构,不包含任何数据信息。 Flink SQL 是Fllink提供的SQL的SDK API。SQL是比Table更高阶的API,集成在Table library中提供,在流和批上都可以用此API开发业务。 ? 也就是说和spark不同, flinkSQL Parsing, Analysing, Optimizing都是托管给calcite(flink会加入一些optimze rules). 接下来直接通过SQL进行查询就好了。 SQL import org.apache.flink.api.common.typeinfo.TypeHint; import org.apache.flink.api.common.typeinfo.TypeInformation

    4.4K32发布于 2020-07-10
  • 来自专栏浪浪山下那个村

    Flink SQL 优化

    要么设置TTL ,要么使用 Flink SQL 的 interval join 。 Flink SQL可以指定空闲状态(即未更新的状态)被保留的最小时间 当状态中某个 key对应的 状态未更新的时间达到阈值时,该条状态被自动清理。 SQL 中使用 Split Distinct 优化方法。 (3)该功能在Flink 1.9.0 版本 及以上版本才支持。 SQL 优化器可以识别同一唯一键上的不同 FILTER 参数。

    1.5K40编辑于 2023-02-05
  • 来自专栏大数据技术与应用实战

    flink实战-flink streaming sql 初体验

    背景 SQL,Structured Query Language:结构化查询语言,作为一个通用、流行的查询语言,不仅仅是在传统的数据库,在大数据领域也变得越来越流行,hive、spark、kafka、flink 等大数据组件都支持sql的查询,使用sql可以让一些不懂这些组件原理的人,轻松的来操作,大大的降低了使用的门槛,今天我们先来简单的讲讲在flink的流处理中如何使用sql. 实例讲解 构造StreamTableEnvironment对象 在flink的流处理中,要使用sql,需要首先构造一个StreamTableEnvironment对象,方法比较简单。 使用Row flink中提供的元组Tuple是有限制的,最多到Tuple25,所以如果我们有更多的字段,可以选择使用flink中的Row对象. https://github.com/zhangjun0x01/bigdata-examples/blob/master/flink/src/main/java/sql/SqlFirst.java

    2.1K20发布于 2020-09-15
  • 来自专栏全栈程序员必看

    Flink学习之flink sql「建议收藏」

    flink sql只需要具备 SQL 的基础知识即可,不需要其他编程经验。我的SQL 客户端选择的是docker安装的Flink SQL Click,大家根据自己的需求安装即可。 目录 1. SQL客户端 SQL客户端内置在Flink的版本中,大家只要启动即可,我使用的是docker环境中配置的Flink SQL Click,让我们测试一下: 输入’helloworld’ 看看输出的结果 总结 今天学习的sql,和往常不一样的地方在于,以往的sql都是处理的是批数据,而今天学习的flink sql可以处理流数据,流数据随着时间的变化而变化,flink sql可以对流数据进行类似表一样的处理 还有就是,flink sql中的窗口函数和我们传统的窗口函数不一样,按理来说,我们正常的窗口函数应该叫over聚合函数。 6. 参考资料 《Flink入门与实战》 《PyDocs》(pyflink官方文档) 《Kafka权威指南》 《Apache Flink 必知必会》 《Apache Flink 零基础入门》 《Flink

    2.4K31编辑于 2022-09-24
  • 来自专栏SmartSi

    Flink SQL Kafka Connector

    依赖 无论是使用构建自动化工具(例如 Maven 或 SBT)的项目还是带有 SQL JAR 包的 SQL 客户端,如果想使用 Kafka Connector,都需要引入如下依赖项: <dependency > <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka_2.11</artifactId> <version >1.13.0</version> </dependency> 如果是使用的 SQL 客户端,需要下载对应的 Jar 包放在 flink 安装目录的 lib 文件夹下。 6.3 Sink 分区 配置项 sink.partitioner 指定了从 Flink 分区到 Kafka 分区的映射关系。默认情况下,Flink 使用 Kafka 默认分区器来对消息进行分区。 原文:Apache Kafka SQL Connector

    6.6K21编辑于 2022-02-22
  • 来自专栏chimchim要努力变强啊

    flink sql实战案例

    目录 一、背景 二、流程 三、案例 1.flink sql读取 Kafka 并写入 MySQL source sink insert 2.flinksql读kafka写入kudu source sink insert 四、注意点 1.断点续传 2.实时采集 3.回溯问题 ---- 一、背景 使用flink sql实时同步一下数据 二、流程 总的来说就三步 source-->>sink->>insert 三、案例 1.flink sql读取 Kafka 并写入 MySQL source CREATE TABLE source_table ( user_id VARCHAR, item_id connector.type' = 'jdbc', -- 使用 jdbc connector 'connector.url' = 'jdbc:mysql://localhost:3306/flink-test

    1.2K20编辑于 2022-11-13
  • 来自专栏全栈程序员必看

    sparkSQL实例_flink sql

    xxx.snappy.parquet") parquetDF.printSchema() parquetDF.show(5) parquetDF.createOrReplaceTempView("log") //业务SQL adorderid>20000 then 1*adpayment/1000 else 0 end) ad_cost " + "from log group by province,city" spark.sql config.getString("db.default.user") val password = config.getString("db.default.password") spark.sql 因为ETL清洗出来的是全字段,我们不可能使用到全部字段,所以采用列式存储,用到几列就获取几列,这样就能减少I/O,性能大大提升) Stat ==> 一个非常简单的SQL搞定 ==> 复杂:多个SQL 或者 一个复杂SQL搞定 列式:ORC/Parquet 特点:把每一列的数据存放在一起 优点:减少IO 需要哪几列就直接获取哪几列 缺点:如果你还是要获取每一行中的所有列,那么性能比行式的差 行式

    1K20编辑于 2022-11-17
  • 来自专栏实战docker

    Flink SQL Client初探

    关于Flink SQL Client Flink Table & SQL的API实现了通过SQL语言处理实时技术算业务,但还是要编写部分Java代码(或Scala),并且还要编译构建才能提交到Flink 局限性 遗憾的是,在Flink-1.10.0版本中,SQL Client只是个Beta版本(不适合用于生产环境),并且只能连接到本地Flink,不能像mysql、cassandra等客户端工具那样远程连接 启动SQL Client CLI 在目录flink-1.10.0/bin/执行. ,结果数量受配置项max-table-result-rows以及可用堆内存限制; 进一步体验 前面写了几行SQL,对Flink SQL Client有了最基本的感受,接下来做进一步的体验,内容如下: 至此,Flink SQL Client的初次体验就完成了,咱们此工具算是有了基本了解,接下来的文章会进一步使用Flink SQL Client做些复杂的操作

    2.9K20发布于 2020-05-26
  • 来自专栏小石头

    Flink sql 窗口函数

    概述 Flink窗口函数是flink的重要特性,而Flink SQL API是Flink批流一体的封装,学习明白本节课,是对Flink学习的很大收益! 窗口函数 窗口函数Flink SQL支持基于无限大窗口的聚合(无需在SQL Query中,显式定义任何窗口)以及对一个特定的窗口的聚合。 Flink SQL支持的窗口聚合主要是两种:Window聚合和Over聚合。本文档主要为您介绍Window聚合。 时间属性 Flink SQL支持以下两种时间属性。实时计算可以基于这两种时间属性对数据进行窗口聚合。

    1.5K20编辑于 2022-11-10
  • 来自专栏小勇DW3

    Flink SQL项目实录

    一、Flink SQL层级 为Flink最高层的API,易于使用,所以应用更加广泛,eg. ETL、统计分析、实时报表、实时风控等。 Flink SQL所处的层级: ? 二、Flink聚合: 1、Window Aggregate 内置了三种常用的窗口: TUMBLE(time, INTERVAL '5'  SECOND);     //类似于flink 中间层 DataStream API 中 window中的滚动窗口 HOP(time, INTERVAL '10' SECOND, INTERVAL '5' SECOND);     //类似于flink 中间层 DataStream 项目代码设置: tEnv.getConfig().setIdleStateRetentionTime(org.apache.flink.api.common.time.Time.minutes(1),org.apache.flink.api.common.time.Time.minutes

    1.3K10发布于 2019-12-24
  • 来自专栏麒思妙想

    零基础学FlinkFlink SQL(上)

    前面几篇内容,我们结合案例来介绍了,两流Join,热销榜,以及状态容错,今天我们依旧基于这个数据,来说说Flink SQL,如果对原理有兴趣的同学,也可以移步到《Stream SQL 的执行原理与 Flink SQL和关系代数设计的时候,并没有考虑流计算,所以流计算和关系数据的计算,有很多概念上的差异。 首先这是一张Flink官方的表 关系代数 / SQL 流计算 关系数据可以表示成一个元组的集合。 动态表 动态表可以说是Flink Table API 和 SQL的核心,动态表可以像普通关系型数据表一样被查询,只是他吐出的数据,是一个持续的数据流。 ? java.io.IOException; import java.sql.Time; import java.sql.Timestamp; import java.util.HashMap; import /flink-docs-release-1.8/dev/table/streaming/joins.html 这段话也算是官方吐槽吧,Join两条流的时候,确实用SQL表达会有很大的障碍,目前我是打算啃啃这块骨头的

    1.3K40发布于 2020-07-10
  • 来自专栏大数据成神之路

    Flink SQL on Zeppelin - 打造自己的可视化Flink SQL开发平台

    本文提炼出来一个完整的Flink SQL对接Zeppelin的方案,希望对读者有帮助。本文未经过原作者允许禁止转载。 那就是SQL。 社区目前也在推进纯Sql的平台,比如Flink自带的sql-client命令行工具,虽说大多数功能都已支持,包括CREATE VIEW这种尚未在代码中支持的语句,但是功能实在单一,且不支持REST方式去提交我们的代码 ververica目前也推出了一个Sql客户端—Flink SQL Gateway+flink-jdbc-driver,将两者结合使用,也能够很好的构架一个纯Sql的开发平台。 以前还得先写Java代码,不会Java就不配写Flink Sql。而现在,除了Sql,别的什么语言都没见着,纯Sql方式完成了从读取到匹配到输出的操作,实在太方便了.

    5.8K31发布于 2021-03-15
  • 来自专栏实战docker

    Flink SQL Client综合实战

    ,我们体验了Flink SQL Client的基本功能,今天来通过实战更深入学习和体验Flink SQL; 实战内容 本次实战主要是通过Flink SQL Client消费kafka的实时消息,再用各种 SQL操作对数据进行查询统计,内容汇总如下: DDL创建Kafka表 窗口统计; 数据写入ElasticSearch 联表操作 版本信息 Flink:1.10.0 Flink所在操作系统:CentOS _2.11-1.10.0.jar flink-json-1.10.0.jar flink-sql-connector-elasticsearch6_2.11-1.10.0.jar flink-sql-connector-kafka 目录,启动flink:bin/start-cluster.sh 启动Flink SQL Client:bin/sql-client.sh embedded -l sql_lib 启动成功显示如下: [在这里插入图片描述 SQL Client体验了Flink SQL丰富的功能,如果您也在学习Flink SQL,希望本文能给您一些参考; 你不孤单,欣宸原创一路相伴 Java系列 Spring系列 Docker系列 kubernetes

    1.5K20发布于 2021-04-21
  • 来自专栏SmartSi

    Flink SQL TableEnvironment 如何选择

    Flink 版本 1.9 本文为 Flink SQL 系列文章的第二篇,前面对 Flink 1.9 Table 新架构及 Planner 的使用进行了详细说明,本文详细讲解 5 个 TableEnvironment TableEnvironment 简介 TableEnvironment 是用来创建 Table & SQL 程序的上下文执行环境,也是 Table & SQL 程序的入口,Table & SQL 程序的所有功能都是围绕 TableEnvironment 的主要职能包括:对接外部系统,表及元数据的注册和检索,执行SQL语句,提供更详细的配置选项。 TableEnvironment 提供的是一个纯 Table 生态的上下文环境,适用于整个作业都使用 Table API & SQL 编写程序的场景。 3.1 场景一 用户使用 Old planner,进行流计算的 Table 程序(使用 Table API 或 SQL 进行开发的程序 )的开发。

    1.6K10发布于 2021-06-21
  • 来自专栏大数据

    Flink SQL性能优化实践

    在大数据处理领域,Apache Flink以其流处理和批处理一体化的能力,成为许多企业的首选。然而,随着数据量的增长,性能优化变得至关重要。 本文将深入浅出地探讨Flink SQL的常见性能问题、调优方法、易错点及调优技巧,并提供代码示例。1. 常见性能问题1.1 数据源读取效率低并行度不足:默认的并行度可能无法充分利用硬件资源。 5.2 执行计划分析查看执行计划:理解Flink如何执行SQL,找出性能瓶颈。EXPLAIN SELECT * FROM table;6. 总结上面介绍了Apache Flink SQL的性能优化实践,涵盖了数据源读取、状态管理、窗口操作、并行度控制、资源调度、并发控制、源码优化、异常处理、数据预处理、数据压缩、任务并行化、网络传输、系统配置 在实际应用中,综合运用这些方法,能够有效地优化Flink SQL的性能。

    62310编辑于 2024-05-22
  • 来自专栏大数据解决方案

    快速了解Flink SQL Sink

    Flink 专门为 Table API 的 jdbc 连接提供了 flink-jdbc 连接器,我们需要先引入依赖: <dependency> <groupId>org.apache.flink 不过 Flink SQL 留下了执行 DDL 的接口:tableEnv.sqlUpdate()。 createTemporaryTable("FileInput") val result = tableEnv.sqlQuery("select * from FileInput ") //定义sql 这样,自定义流处理或批处理 程序就可以继续在Table API 或 SQL 查询的结果上运行了。 上述讲解了一些关于Flink SQL 输出的内容如我们常用的(kafka、MySQL、文件、DataStream)还有常用的hive的没有写出来,因为hive跟MySQL有点区别后续会单独出一片文章给大家讲解

    3.6K40发布于 2021-02-04
  • 来自专栏857-Bigdata

    Flink】小白级入门,Flink sql 的基础用法

    导读 : - flink sql 介绍 - flink sql 使用 Flink sql 是什么 ❝sql 的诞生就是为了简化我们对数据开发,可以使用少量的 sql 代码,帮助我完成对数据的查询 ,分析等功能 ❞ 声明式 & 易于理解 对于用户只需要表达我想要什么,具体处理逻辑交给框架,系统处理,用户无需关心,对于一些非专业的开发人员有了解 sql,并且 sql 相对我们学习 java,c 等语言更简单 ,学习成本更低,如果跨团队,或者非大数据开发人员,也可以通过 sql 来进行 flink 任务的开发 自动调优 查询优化器,会对我们编写的 sql 进行优化,生成效率更好的执行计划,所以用户不需要了解底层细节 对于 flink 通过 sql 的表达式,来完成流批的统一,一套 sql 代码,既可以跑流任务,也可以跑批任务,减少我们开发的成本 Flink sql 使用 数据类型 -- 字符串类型 # char ; import org.apache.flink.types.Row; import java.sql.SQLException; public class UDFDemo { public

    2K10编辑于 2022-05-17
  • 来自专栏小道

    Flink学习笔记(9)-Table API 和 Flink SQL

    一、Table API 和 Flink SQL 是什么? • Flink 对批处理和流处理,提供了统一的上层 API • Table API 是一套内嵌在 Java 和 Scala 语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询 • Flink 执行 SQL 查询   4.   FlinkSQL 集成,基于实现 了SQL 标准的 Apache Calcite   在 Flink 中,用常规字符串来定义 SQL 查询语句   SQL 查询的结果,也是一个新的 Table 为了定义一个表函数,必须扩展org.apache.flink.table.functions中的基类TableFunction并实现(一个或多个)求值方法。

    2.7K10编辑于 2022-05-11
  • 来自专栏大数据技术与应用实战

    flink教程-基于flink 1.11 使 sql客户端支持执行sql文件

    但是当我想执行一些sql的定时任务时,flink却没有提供一个合适的方式,所以综合考虑了一下,我决定在sql的客户端基础上给加一个 '-filename (-f)' 参数,就像类似'hive -f abc.sql 源码修改 目前我只是想通过sql客户端执行一些批任务,再加上flink sql 客户端本身的一些设计,所以目前修改后的sql client 执行sql文件的时候支持 SET,DDL,INSERT INTO 修改后执行的方式为: /home/flink/bin/sql-client.sh embedded -f flink.sql CliOptionsParser.java 在这个sql 客户端参数解析类里添加一个选项 https://issues.apache.org/jira/browse/FLINK-12828 我看了一下这个相关的pr,感觉有些问题,比如sql文件没法支持多个sql,如果复用了原来的CliClient #callCommand方法,有些sql是没法执行的,比如clear、select等等,因为select在flink的客户端是开启了一个新的窗口来显示select的结果,但是我们需要的是执行一个sql文件

    1.7K20发布于 2020-09-15
领券